package com.uzhie.web.dao;

import com.uzhie.web.module.Role;
import com.uzhie.web.module.RoleMenu;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

/**
 *
 * 用户角色信息表
 * Created by lilongfei on 2018/7/12.
 */
public interface RoleDAO extends Mapper<Role>{
    /**
     * 通过用户ID 获取用户所有的角色信息
     * @param userId 用户id
     * @return 角色列表
     */
    List<Role> findRoleByUserID(@Param("userId") String userId);

    /**
     * 添加角色与菜单关系
     * @param rms 角色菜单关系集合
     * @return
     */
    int addRoleAndMenu(@Param(value = "list") List<RoleMenu> rms);


    /**
     * 根据角色ID获取角色详情
     * @param roleId
     * @return
     */
    Role selectRoleById(@Param(value = "roleId") String roleId);

    /**
     * 根据条件查询角色列表
     * @param name 角色名称
     * @param createName 创建人
     * @param minCreateTime 创建时间(范围查询)
     * @param maxCreateTime 创建时间(范围查询)
     * @param menuName 菜单名称
     * @return
     */
    List<Role> selectAllRoleByCondition(@Param("name") String name,
                                        @Param("createName") String createName,
                                        @Param("minCreateTime") String minCreateTime,
                                        @Param("maxCreateTime") String maxCreateTime,
                                        @Param("menuName") String menuName,
                                        @Param("level") Integer level,
                                        RowBounds rowBounds
                                        );

    /**
     * 根据角色id,修改角色状态
     * @param roleId
     * @param status
     * @return
     */
    int updateRoleStatusById(@Param("roleId") String roleId,
                             @Param("status") Integer status
    );
}
